package ar.uade.distribuidas.tpo.dba.servicio;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import ar.uade.distribuidas.tpo.base.dominiodto.ProveedorDTO;
import ar.uade.distribuidas.tpo.base.remoto.IGestionProveedor;
import ar.uade.distribuidas.tpo.dba.dao.ProveedorDAO;
import ar.uade.distribuidas.tpo.dba.dominio.Proveedor;

public class GestionProveedor extends UnicastRemoteObject implements IGestionProveedor{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private ProveedorDAO proveedorDAO;

	public GestionProveedor() throws RemoteException {
		super();
		this.proveedorDAO = ProveedorDAO.getInstance();
	}

	@Override
	public void altaProveedor(ProveedorDTO pDTO) throws RemoteException {
		Proveedor p = new Proveedor(pDTO.getCuil(), pDTO.getNombre());
		proveedorDAO.persist(p);
	}

	@Override
	public void modificarProveedor(String cuil) throws RemoteException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void bajaProveedor(String cuil) throws RemoteException {
		Proveedor p = (Proveedor) proveedorDAO.getSession().get(Proveedor.class, cuil);
		proveedorDAO.getSession().delete(p);
	}

	public ProveedorDAO getProveedorDAO() {
		return proveedorDAO;
	}

	public void setProveedorDAO(ProveedorDAO proveedorDAO) throws RemoteException{
		this.proveedorDAO = proveedorDAO;
	}
	
	public Proveedor getProveedor(Long cuil)throws RemoteException{
		return ProveedorDAO.getInstance().getProveedor(cuil);
	}
	
	
}
